home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / fftplot.src < prev    next >
Text File  |  1991-10-19  |  1KB  |  64 lines

  1. %%HP: T(3)A(R)F(.);
  2. @ FFTPLOT by Frank Gregory Baird
  3. DIR
  4.   FFT
  5.     \<<
  6.       IFERR RCLF RAD -15 CF -16 CF \-> x fwd flg
  7.         \<< x SIZE 1 GET DUP LN 2 LN / 0 RND \-> n m
  8.           \<< n 2 / 1 \-> n2 j
  9.             \<< 1 n 1 -
  10.               FOR i
  11.         IF 'i<j'
  12.         THEN x j GET \-> t
  13.           \<< 'x' j x i GET PUT 'x' i t PUT
  14.           \>>
  15.         END n2 \-> k
  16.         \<<
  17.           WHILE 'k<j'
  18.           REPEAT 'j' k STO- 'k' 2 STO/
  19.           END 'j' k STO+
  20.         \>>
  21.               NEXT
  22.             \>> 1 m
  23.             FOR l 2 l ^ DUP 2 / \-> le le1
  24.               \<< (1,0) '\pi/le1' \->NUM DUP COS SWAP SIN NEG fwd * R\->C \-> u w
  25.         \<< 1 le1
  26.           FOR j j n
  27.             FOR i i le1 + \-> ip
  28.               \<< x ip GET u * \-> t
  29.                 \<< 'x' ip x i GET t - PUT 'x' i x i GET t + PUT
  30.                 \>>
  31.               \>> le
  32.             STEP 'u' w STO*
  33.           NEXT
  34.         \>>
  35.               \>>
  36.             NEXT
  37.             IF 'fwd==-1'
  38.             THEN 1 n
  39.               FOR i 'x' i x i GET n / PUT
  40.               NEXT
  41.             END
  42.           \>> x flg STOF
  43.         \>>
  44.       THEN CLLCD
  45. "Enter a 2^N
  46. complex vector then
  47. 1 for a forward FFT or
  48. -1 for a backward FFT" 3 DISP 2 FREEZE
  49.       END
  50.     \>>
  51.   PLFFT
  52.     \<<
  53.       IFERR CL\GS \-> x
  54.         \<< 1 x SIZE 1 GET
  55.           FOR i x i GET ABS \GS+
  56.           NEXT 1 XCOL BARPLOT GRAPH { \GSDAT \GSPAR } PURGE
  57.         \>>
  58.       THEN
  59. "Enter a 2^N
  60. complex vector" CLLCD 3 DISP 2 FREEZE
  61.       END
  62.     \>>
  63. END
  64.